// 占位符
import {isNumber} from "./isNumber";

const placeholderRegex = /(\${([^{}]+)})/ig;

/**
 *  编译字符串
 * @param expr          表达式、示例：欢迎${username}、使用系统！
 * @param parameters    {username:"超级管理员"}
 * @returns {*}
 */
function template(expr, parameters) {
  let value, result = expr;
  while ((value = placeholderRegex.exec(expr)) != null) {
    result = result.replace(value[0], parameters[value[2]] || isNumber(parameters[value[2]]) ? parameters[value[2]] : ""/*value[0] + " -> 未定义"*/);
  }
  return result;
}

export {template}
